﻿
namespace badminton
{
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.ComponentModel.DataAnnotations;
    using System.Data.Objects.DataClasses;
    using System.Linq;
    using System.ServiceModel.DomainServices.Hosting;
    using System.ServiceModel.DomainServices.Server;


    // The MetadataTypeAttribute identifies CityAreaMetadata as the class
    // that carries additional metadata for the CityArea class.
    [MetadataTypeAttribute(typeof(CityArea.CityAreaMetadata))]
    public partial class CityArea
    {

        // This class allows you to attach custom attributes to properties
        // of the CityArea class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        [DisplayName("13-城区表")]
        internal sealed class CityAreaMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private CityAreaMetadata()
            {
            }

            [DisplayName("所有球馆")]
            public EntityCollection<Hall> Hall { get; set; }

            public int id { get; set; }

            [Required(ErrorMessage = "请输入*号标注数据!")]
            [StringLength(20, ErrorMessage = "输入最多20个字!!")]
            [DisplayName("名称")]
            public string name { get; set; }

            [DisplayName("备注")]
            public string remark { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies CourtMetadata as the class
    // that carries additional metadata for the Court class.
    [MetadataTypeAttribute(typeof(Court.CourtMetadata))]
    public partial class Court
    {

        // This class allows you to attach custom attributes to properties
        // of the Court class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        [DisplayName("11-球场")]
        internal sealed class CourtMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private CourtMetadata()
            {
            }

            [DisplayName("球场安排")]
            public EntityCollection<CourtSchedule> CourtSchedule { get; set; }

            [DisplayName("所属球馆")]
            public Hall Hall { get; set; }

            public Nullable<int> hallId { get; set; }

            public int id { get; set; }

            [Required(ErrorMessage = "请输入*号标注数据!")]
            [DisplayName("名称")]
            [StringLength(20, ErrorMessage = "输入最多20个字!!")]
            public string name { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies CourtScheduleMetadata as the class
    // that carries additional metadata for the CourtSchedule class.
    [MetadataTypeAttribute(typeof(CourtSchedule.CourtScheduleMetadata))]
    public partial class CourtSchedule
    {

        // This class allows you to attach custom attributes to properties
        // of the CourtSchedule class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        [DisplayName("12-球场安排")]
        internal sealed class CourtScheduleMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private CourtScheduleMetadata()
            {
            }

            [DisplayName("球场")]
            public Court Court { get; set; }

            public Nullable<int> courtId { get; set; }

            [Required(ErrorMessage = "请输入*号标注数据!")]
            [DisplayName("安排类型")]
            public CourtScheduleType CourtScheduleType { get; set; }

            [Required(ErrorMessage = "请输入*号标注数据!")]
            [DisplayName("结束时间")]
            [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy.MM.dd}")]
            public Nullable<DateTime> endTime { get; set; }

            public int id { get; set; }

            [DisplayName("备注")]
            public string remark { get; set; }

            public Nullable<int> scheduleTypeId { get; set; }

            [Required(ErrorMessage = "请输入*号标注数据!")]
            [DisplayName("开始时间")]
            [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy.MM.dd}")]
            public Nullable<DateTime> startTime { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies CourtScheduleTypeMetadata as the class
    // that carries additional metadata for the CourtScheduleType class.
    [MetadataTypeAttribute(typeof(CourtScheduleType.CourtScheduleTypeMetadata))]
    public partial class CourtScheduleType
    {

        // This class allows you to attach custom attributes to properties
        // of the CourtScheduleType class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        [DisplayName("14-球场使用类型")]
        internal sealed class CourtScheduleTypeMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private CourtScheduleTypeMetadata()
            {
            }

            [DisplayName("相关球场")]
            public EntityCollection<CourtSchedule> CourtSchedule { get; set; }

            public int id { get; set; }

            [Required(ErrorMessage = "请输入*号标注数据!")]
            [DisplayName("使用类型")]
            [StringLength(20, ErrorMessage = "输入最多20个字!!")]
            public string name { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies HallMetadata as the class
    // that carries additional metadata for the Hall class.
    [MetadataTypeAttribute(typeof(Hall.HallMetadata))]
    public partial class Hall
    {

        // This class allows you to attach custom attributes to properties
        // of the Hall class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        [DisplayName("10-球馆")]
        internal sealed class HallMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private HallMetadata()
            {
            }

            public Nullable<int> adminId { get; set; }

            [DisplayName("所在城区")]
            public CityArea CityArea { get; set; }

            public Nullable<int> cityAreaId { get; set; }

            [DisplayName("相关球场")]
            public EntityCollection<Court> Court { get; set; }

            [UIHint("RichText")]
            [DisplayName("球馆介绍")]
            public string description { get; set; }

            [DisplayName("球馆管理员")]
            public HallAdmin HallAdmin { get; set; }

            [DisplayName("球馆照片")]
            [UIHint("Image")]
            public string hallPhoto { get; set; }

            public int id { get; set; }

            [DisplayName("交通图")]
            [UIHint("Image")]
            public string mapPhoto { get; set; }

            [Required(ErrorMessage = "请输入*号标注数据!")]
            [DisplayName("球馆名称")]
            [StringLength(24, ErrorMessage = "输入最多24个字!!")]
            public string name { get; set; }

            [UIHint("RichText")]
            [DisplayName("交通介绍")]
            public string traffic { get; set; }

            [DisplayName("相关培训")]
            public EntityCollection<Training> Training { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies HallAdminMetadata as the class
    // that carries additional metadata for the HallAdmin class.
    [MetadataTypeAttribute(typeof(HallAdmin.HallAdminMetadata))]
    public partial class HallAdmin
    {

        // This class allows you to attach custom attributes to properties
        // of the HallAdmin class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        [DisplayName("01-球馆管理员")]
        internal sealed class HallAdminMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private HallAdminMetadata()
            {
            }

            [DisplayName("相关球馆")]
            public EntityCollection<Hall> Hall { get; set; }

            public int id { get; set; }

            [Required(ErrorMessage = "请输入*号标注数据!")]
            [StringLength(20, ErrorMessage = "输入最多20个字!!")]
            [DisplayName("姓名")]
            public string name { get; set; }

            [DisplayName("密码")]
            public string password { get; set; }

            [DisplayName("登录名")]
            public string userName { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies StudentMetadata as the class
    // that carries additional metadata for the Student class.
    [MetadataTypeAttribute(typeof(Student.StudentMetadata))]
    public partial class Student
    {

        // This class allows you to attach custom attributes to properties
        // of the Student class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        [DisplayName("02-学生表")]
        internal sealed class StudentMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private StudentMetadata()
            {
            }

            [DisplayName("联系地址")]
            public string address { get; set; }

            [DisplayName("出生年月")]
            [UIHint("Date")]
            [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy.MM}")]
            public Nullable<DateTime> birthday { get; set; }

            [Required(ErrorMessage = "请输入*号标注数据!")]
            [DisplayName("性别")]
            [UIHint("Gender")]
            public string gender { get; set; }

            public int id { get; set; }

            [Required(ErrorMessage = "请输入*号标注数据!")]
            [StringLength(20, ErrorMessage = "输入最多20个字!!")]
            [DisplayName("姓名")]
            public string name { get; set; }

            [DisplayName("密码")]
            public string password { get; set; }

            [DisplayName("电话")]
            public string phone { get; set; }

            [DisplayName("相关培训")]
            public EntityCollection<Training> Training { get; set; }

            [DisplayName("相关成绩")]
            public EntityCollection<TrainingCourseGrading> TrainingCourseGrading { get; set; }

            [DisplayName("登录名")]
            public string userName { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies SysAdminMetadata as the class
    // that carries additional metadata for the SysAdmin class.
    [MetadataTypeAttribute(typeof(SysAdmin.SysAdminMetadata))]
    public partial class SysAdmin
    {

        // This class allows you to attach custom attributes to properties
        // of the SysAdmin class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        [DisplayName("00-系统管理员")]
        internal sealed class SysAdminMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private SysAdminMetadata()
            {
            }

            public int id { get; set; }

            [Required(ErrorMessage = "请输入*号标注数据!")]
            [DisplayName("姓名")]
            [StringLength(20, ErrorMessage = "输入最多20个字!!")]
            public string name { get; set; }

            [DisplayName("密码")]
            public string password { get; set; }

            [DisplayName("登录名")]
            public string userName { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies TeacherMetadata as the class
    // that carries additional metadata for the Teacher class.
    [MetadataTypeAttribute(typeof(Teacher.TeacherMetadata))]
    public partial class Teacher
    {

        // This class allows you to attach custom attributes to properties
        // of the Teacher class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        [DisplayName("03-教师表")]
        internal sealed class TeacherMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private TeacherMetadata()
            {
            }

            [DisplayName("联系地址")]
            public string address { get; set; }

            [DisplayName("出生年月")]
            [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy.MM}")]
            [UIHint("Date")]
            public Nullable<DateTime> birthday { get; set; }

            [DisplayName("介绍")]
            public string description { get; set; }

            [Required(ErrorMessage = "请输入*号标注数据!")]
            [DisplayName("性别")]
            [UIHint("Gender")]
            public string gender { get; set; }

            public int id { get; set; }

            [DisplayName("姓名")]
            [Required(ErrorMessage = "请输入*号标注数据!")]
            [StringLength(20, ErrorMessage = "输入最多20个字!!")]
            public string name { get; set; }

            [DisplayName("密码")]
            public string password { get; set; }

            [DisplayName("电话")]
            public string phone { get; set; }

            [DisplayName("相关培训")]
            public EntityCollection<Training> Training { get; set; }

            [DisplayName("登录名")]
            public string userName { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies TrainingMetadata as the class
    // that carries additional metadata for the Training class.
    [MetadataTypeAttribute(typeof(Training.TrainingMetadata))]
    public partial class Training
    {

        // This class allows you to attach custom attributes to properties
        // of the Training class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        [DisplayName("20-培训")]
        internal sealed class TrainingMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private TrainingMetadata()
            {
            }

            [UIHint("RichText")]
            [DisplayName("培训介绍")]
            public string description { get; set; }

            [DisplayName("结束时间")]
            [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy.MM.dd}")]
            public Nullable<DateTime> endTime { get; set; }

            [DisplayName("所在球馆")]
            public Hall Hall { get; set; }

            public Nullable<int> hallId { get; set; }

            public int id { get; set; }

            [Required(ErrorMessage = "请输入*号标注数据!")]
            [StringLength(20, ErrorMessage = "输入最多20个字!!")]
            [DisplayName("培训名称")]
            public string name { get; set; }

            [DisplayName("开始时间")]
            [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy.MM.dd}")]
            public Nullable<DateTime> startTime { get; set; }

            [DisplayName("学生")]
            public EntityCollection<Student> Student { get; set; }

            [DisplayName("教练")]
            public Teacher Teacher { get; set; }

            public Nullable<int> teacherId { get; set; }

            [DisplayName("相关课程")]
            public EntityCollection<TrainingCourse> TrainingCourse { get; set; }

            [DisplayName("开班人数")]
            public Nullable<int> requiredTraineeNum { get; set; }

            [DisplayName("培训类别")]
            public TrainingCategory TrainingCategory { get; set; }

            public Nullable<int> traingCategoryId { get; set; }


            [UIHint("RichText")]
            [DisplayName("费用详情")]
            public string costDetail { get; set; }

            [UIHint("RichText")]
            [DisplayName("注意事项")]
            public string attentions { get; set; }


        }
    }

    // The MetadataTypeAttribute identifies TrainingCourseMetadata as the class
    // that carries additional metadata for the TrainingCourse class.
    [MetadataTypeAttribute(typeof(TrainingCourse.TrainingCourseMetadata))]
    public partial class TrainingCourse
    {

        // This class allows you to attach custom attributes to properties
        // of the TrainingCourse class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        [DisplayName("21-培训课程")]
        internal sealed class TrainingCourseMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private TrainingCourseMetadata()
            {
            }

            [DisplayName("课程介绍")]
            public string description { get; set; }

            [Required(ErrorMessage = "请输入*号标注数据!")]
            [DisplayName("结束时间")]
            [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy.MM.dd}")]
            public Nullable<DateTime> endTime { get; set; }

            public int id { get; set; }

            [Required(ErrorMessage = "请输入*号标注数据!")]
            [StringLength(20, ErrorMessage = "输入最多20个字!!")]
            [DisplayName("名称")]
            public string name { get; set; }

            [DisplayName("课程小结")]
            public string review { get; set; }

            [Required(ErrorMessage = "请输入*号标注数据!")]
            [DisplayName("开始时间")]
            [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy.MM.dd}")]
            public Nullable<DateTime> startTime { get; set; }

            [DisplayName("")]
            public Training Training { get; set; }

            [DisplayName("课程成绩表")]
            public EntityCollection<TrainingCourseGrading> TrainingCourseGrading { get; set; }

            public Nullable<int> trainingId { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies TrainingCourseGradingMetadata as the class
    // that carries additional metadata for the TrainingCourseGrading class.
    [MetadataTypeAttribute(typeof(TrainingCourseGrading.TrainingCourseGradingMetadata))]
    public partial class TrainingCourseGrading
    {

        // This class allows you to attach custom attributes to properties
        // of the TrainingCourseGrading class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        [DisplayName("22-课程成绩表")]
        internal sealed class TrainingCourseGradingMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private TrainingCourseGradingMetadata()
            {
            }

            [DisplayName("评语")]
            public string comment { get; set; }

            public int courseId { get; set; }

            [DisplayName("评级")]
            [UIHint("CourseGrading")]
            public Nullable<int> grade { get; set; }

            [DisplayName("学生")]
            public Student Student { get; set; }

            [DisplayName("学生反馈")]
            public string studentFeedback { get; set; }

            public int studentId { get; set; }

            [DisplayName("相关课程")]
            public TrainingCourse TrainingCourse { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies TrainingCategoryMetadata as the class
    // that carries additional metadata for the TrainingCategory class.
    [MetadataTypeAttribute(typeof(TrainingCategory.TrainingCategoryMetadata))]
    public partial class TrainingCategory
    {

        // This class allows you to attach custom attributes to properties
        // of the TrainingCategory class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        [DisplayName("23-培训类别")]
        internal sealed class TrainingCategoryMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private TrainingCategoryMetadata()
            {
            }

            [DisplayName("相关培训")]
            public EntityCollection<Training> Training { get; set; }

            public int id { get; set; }

            [Required(ErrorMessage = "请输入*号标注数据!")]
            [StringLength(20, ErrorMessage = "输入最多20个字!!")]
            [DisplayName("名称")]
            public string name { get; set; }

        }
    }
}
